Проблема: в распределённых облачных приложениях команды часто игнорируют необходимость централизованного логирования, трассировки и метрик.
Это приводит к тому, что при возникновении инцидента сложно быстро найти первопричину, восстановить последовательность событий или вовремя отреагировать на деградацию сервиса.
Решение: настройка единой платформы наблюдаемости с использованием решений вроде OpenTelemetry, Prometheus, Grafana, Jaeger и ELK. Применение принципа "инструментировать всё", включая бизнес-метрики, latency, error rate и трассировки.
Пример конфигурации с использованием OpenTelemetry и Prometheus:
# Для микросервиса
scrape_configs:
- job_name: 'my-service'
metrics_path: /metrics
static_configs:
- targets: ['my-service:8080']
# В коде сервиса:
const { MeterProvider } = require('@opentelemetry/sdk-metrics');
const { PrometheusExporter } = require('@opentelemetry/exporter-prometheus');
const exporter = new PrometheusExporter({ startServer: true }, () => {
console.log('Prometheus scrape endpoint: http://localhost:9464/metrics');
});
const meter = new MeterProvider({ exporter }).getMeter('my-service-meter');
Преимущества:
— Быстрое выявление и устранение проблем за счёт централизованных логов, метрик и трассировок
— Повышение надёжности и отказоустойчивости архитектуры
— Поддержка SLO/SLA и реального контроля за качеством сервиса
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥Павел Дуров назвал это «эпической победой»
А именно — победу Epic Games в суде над Apple. Теперь «яблоко» не сможет взимать комиссию за покупки вне App Store.
Наконец-то мобильные разработчики могут направлять пользователей на альтернативные платежные системы прямо из приложений. Для этого уже есть готовые решения, например, Xsolla Webshop.
Webshop позволяет игрокам покупать внутриигровую валюту, предметы и подписки прямо в браузере, а разработчикам — направлять игроков на покупку любого юнита всего в один клик.
💸 Факты:
• Средний рост выручки за счет экономии на комиссиях — +25%
• До +60% активных пользователей
• +40% retention при успешной LiveOps-стратегии
• Более 50% покупок может проходить через Web Shop
За 2 года команда запустила более 500 Web Shop с шаблонами, гибкой кастомизацией, импортом каталога, deep link авторизацией, аналитикой и LiveOps.
➡️ Читать гайд по запуску Xsolla: bit.ly/Xsolla-web-shop
➡️ Запланировать бесплатную встречу с экспертом: bit.ly/Mobile-web-shop-contactus
А именно — победу Epic Games в суде над Apple. Теперь «яблоко» не сможет взимать комиссию за покупки вне App Store.
Наконец-то мобильные разработчики могут направлять пользователей на альтернативные платежные системы прямо из приложений. Для этого уже есть готовые решения, например, Xsolla Webshop.
Webshop позволяет игрокам покупать внутриигровую валюту, предметы и подписки прямо в браузере, а разработчикам — направлять игроков на покупку любого юнита всего в один клик.
💸 Факты:
• Средний рост выручки за счет экономии на комиссиях — +25%
• До +60% активных пользователей
• +40% retention при успешной LiveOps-стратегии
• Более 50% покупок может проходить через Web Shop
За 2 года команда запустила более 500 Web Shop с шаблонами, гибкой кастомизацией, импортом каталога, deep link авторизацией, аналитикой и LiveOps.
Please open Telegram to view this post
VIEW IN TELEGRAM
💀 Джуны: game over или новый уровень сложности?
Рынок IT стремительно меняется. Рекрутеры всё чаще ищут только сеньоров — тех, кто может приносить результат «здесь и сейчас». Искусственный интеллект автоматизирует рутинные задачи, которые раньше поручали джуниорам.
В этих условиях многим начинающим программистам кажется, что эпоха джуниоров подходит к концу. Без опыта, сильного портфолио и системного мышления получить первый оффер стало почти невозможно.
➡️ Поймите, так ли жесток рынок
🐸 Библиотека devops'a #буст
Рынок IT стремительно меняется. Рекрутеры всё чаще ищут только сеньоров — тех, кто может приносить результат «здесь и сейчас». Искусственный интеллект автоматизирует рутинные задачи, которые раньше поручали джуниорам.
В этих условиях многим начинающим программистам кажется, что эпоха джуниоров подходит к концу. Без опыта, сильного портфолио и системного мышления получить первый оффер стало почти невозможно.
Please open Telegram to view this post
VIEW IN TELEGRAM
💻 Команда дня: Jump Host
Jump Host (или Bastion Host) — это промежуточный сервер, через который осуществляется SSH-доступ к защищённым или изолированным серверам внутри сети.
Синтаксис команды
• user@bastion — логин и адрес jump-сервера.
• user@target — конечный хост, к которому вы хотите подключиться.
• Опция
Как это работает
1. SSH-клиент подключается к bastion.
2. Через bastion, без хранения данных на нём, устанавливается SSH-соединение к target.
3. Всё взаимодействие с целевой машиной осуществляется напрямую, прозрачно для пользователя.
Работает с scp, rsync, sftp, git и другими инструментами, поддерживающими SSH.
А также можно использовать цепочку bastion'ов:
Но самое главное — безопасность. Bastion-хост должен быть жёстко ограничен: минимальные пакеты, логирование, IDS/IPS.
🐸 Библиотека devops'a #буст
Jump Host (или Bastion Host) — это промежуточный сервер, через который осуществляется SSH-доступ к защищённым или изолированным серверам внутри сети.
Синтаксис команды
ssh -J user@bastion user@target
• user@bastion — логин и адрес jump-сервера.
• user@target — конечный хост, к которому вы хотите подключиться.
• Опция
-J
— это ProxyJump, доступна с OpenSSH 7.3+.Как это работает
1. SSH-клиент подключается к bastion.
2. Через bastion, без хранения данных на нём, устанавливается SSH-соединение к target.
3. Всё взаимодействие с целевой машиной осуществляется напрямую, прозрачно для пользователя.
Работает с scp, rsync, sftp, git и другими инструментами, поддерживающими SSH.
А также можно использовать цепочку bastion'ов:
ssh -J user@bastion1,user@bastion2 user@target
Но самое главное — безопасность. Bastion-хост должен быть жёстко ограничен: минимальные пакеты, логирование, IDS/IPS.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Нашли для вас интересную идею: как использовать ИИ, будто вы спрашиваете у StackOverflow. Он отвечает кодом и добавляет пояснения только если не хватает деталей — коротко, по делу.
Промпт:
I want you to act as a stackoverflow post. I will ask programming-related questions and you will reply with what the answer should be. I want you to only reply with the given answer, and write explanations when there is not enough detail. do not write explanations. When I need to tell you something in English, I will do so by putting text inside curly brackets {like this}. My first question is "<Paste your question here>
💬 А вы писали ответы или вопросы на StackOverflow? Поделитесь опытом в комментариях 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
🎩 Fedora Linux теперь доступна в WSL
Microsoft объявила о добавлении Fedora Linux в список официальных дистрибутивов для Windows Subsystem for Linux (WSL).
Начиная с версии Fedora 42, пользователи Windows могут установить Fedora напрямую через WSL, используя новую архитектуру на основе tar-архивов.
Как установить
1. Убедитесь, что WSL установлен и активирован на вашем устройстве.
2. Выполните команду:
💬 Пользуетесь WSL? Если да, то каким дистрибутивом пользуетесь? Делитесь в комментариях 👇
➡️ Источник
🐸 Библиотека devops'a #свежак
Microsoft объявила о добавлении Fedora Linux в список официальных дистрибутивов для Windows Subsystem for Linux (WSL).
Начиная с версии Fedora 42, пользователи Windows могут установить Fedora напрямую через WSL, используя новую архитектуру на основе tar-архивов.
Как установить
1. Убедитесь, что WSL установлен и активирован на вашем устройстве.
2. Выполните команду:
wsl –-install FedoraLinux-42
💬 Пользуетесь WSL? Если да, то каким дистрибутивом пользуетесь? Делитесь в комментариях 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Инженер без профильного IT-образования начал карьеру с позиций техподдержки, постепенно растягивая себя изнутри — через ночные дежурства, баги, и прод с дрожащими руками.
Путь был неровный, выматывающий, местами выжигающий — но он сработал.
Please open Telegram to view this post
VIEW IN TELEGRAM
✅ Грин-флаги в вакансиях: 10 признаков хорошего работодателя
Пока одни сосредоточены на том, как произвести впечатление на работодателя, опытные соискатели внимательно читают вакансии и ищут признаки того, что перед ними достойная компания.
В статье подробно о том, как распознать хорошего работодателя ещё до собеседования, просто внимательно вчитавшись в текст вакансии.
📎 Читать статью
🐸 Библиотека devops'a #буст
Пока одни сосредоточены на том, как произвести впечатление на работодателя, опытные соискатели внимательно читают вакансии и ищут признаки того, что перед ними достойная компания.
В статье подробно о том, как распознать хорошего работодателя ещё до собеседования, просто внимательно вчитавшись в текст вакансии.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Недавно на Reddit один парень поделился историей: его взяли DevOps-инженером в компанию с 400 разработчиками, имея только небольшой IT-бэкграунд из университета.
Он успешно выполнил тестовое, но.. с ChatGPT. Всё честно рассказал, а ему в ответ: «Главное, что ты сам справился, таких, как ты, мало».
✅ Плюсы такого подхода:
• Работодатель не требует бумажек, он смотрит на конкретную задачу и решение. Ты сделал — тебя взяли.
• Навыки самообучения ценятся. Умение гуглить, пользоваться AI, разбираться в доках — это уже валюта на рынке.
• Свежая голова. Без «корпоративных шор» — часто новички предлагают нестандартные решения, которых не ждут от опытных.
• Настроить CI/CD один раз — это одно. А вот поддерживать прод, мониторить инциденты и общаться с безопасниками — уже совсем другое кино.
• Одиночество джуниора. Когда рядом нет сеньоров, ты учишься на проде. И каждый косяк может стать инцидентом недели.
• Претензии к AI-зависимости. Сделать руками важно, но понимать почему это работает — ещё важнее. Без этого ты не инженер, а оператор подсказок.
💬 А что думаете вы? Взяли бы «джунов без опыта, но с реальными проектами и умением гуглить»? Или верите, что без фундамента в проде делать нечего? 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
📰 Еженедельный дайджест
Собрали для вас немного сигналов из всего информационного шума.
— Как Docker предлагает защитить агентные AI-системы
Docker в своём блоге анализирует уязвимости текущих подходов к использованию MCP и предлагает решения на основе контейнеризации.
— Volume Populators достигли стадии General Availability
В версии Kubernetes 1.33 функция Volume Populators перешла в статус GA, предоставляя разработчикам возможность предварительно заполнять тома данными из различных источников, а не только через клонирование PVC или снапшоты.
— Улучшенная аутентификация при загрузке образов через Service Account Tokens
В версии Kubernetes 1.33 представлена альфа-версия интеграции токенов сервисных аккаунтов с провайдерами учетных данных kubelet для загрузки образов.
Это позволяет использовать короткоживущие, автоматически обновляемые токены, соответствующие стандарту OIDC, для аутентификации при загрузке образов.
— Бета-версия MCP Catalog и Toolkit
Docker анонсировал запуск бета-версии MCP Catalog и Toolkit — инструментов, предназначенных для упрощения поиска, установки и безопасного использования серверов Model Context Protocol.
— Джуны: game over или новый уровень сложности?
— Fedora Linux теперь доступна в WSL
— Грин-флаги в вакансиях: 10 признаков хорошего работодателя
🐸 Библиотека devops'a #свежак
Собрали для вас немного сигналов из всего информационного шума.
— Как Docker предлагает защитить агентные AI-системы
Docker в своём блоге анализирует уязвимости текущих подходов к использованию MCP и предлагает решения на основе контейнеризации.
— Volume Populators достигли стадии General Availability
В версии Kubernetes 1.33 функция Volume Populators перешла в статус GA, предоставляя разработчикам возможность предварительно заполнять тома данными из различных источников, а не только через клонирование PVC или снапшоты.
— Улучшенная аутентификация при загрузке образов через Service Account Tokens
В версии Kubernetes 1.33 представлена альфа-версия интеграции токенов сервисных аккаунтов с провайдерами учетных данных kubelet для загрузки образов.
Это позволяет использовать короткоживущие, автоматически обновляемые токены, соответствующие стандарту OIDC, для аутентификации при загрузке образов.
— Бета-версия MCP Catalog и Toolkit
Docker анонсировал запуск бета-версии MCP Catalog и Toolkit — инструментов, предназначенных для упрощения поиска, установки и безопасного использования серверов Model Context Protocol.
— Джуны: game over или новый уровень сложности?
— Fedora Linux теперь доступна в WSL
— Грин-флаги в вакансиях: 10 признаков хорошего работодателя
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека задач по DevOps | тесты, код, задания
Каково назначение плагина CNI (Container Network Interface) в Kubernetes?
Anonymous Quiz
1%
Развертывание файлов конфигурации
2%
Управление операциями хранения
96%
Подключение контейнеров к сети
1%
Обработка секретов приложений
DevOps инженер — Удалёнка.
Инженер DevOps — до 300 000 ₽, Офис.
DevOps-инженер — до 300 000 ₽, Удалёнка (Санкт-Петербург).
Middle+/Senior Devops Engineer — Удалёнка.
Администратор PostgreSQL — Удалёнка.
Бустер — Офис в любом городе мира.
Please open Telegram to view this post
VIEW IN TELEGRAM
Нашли для вас шпаргалку по сервисам AWS. С ней можно ориентироваться в том, какие инструменты AWS лучше всего подойдут для решения задач.
Please open Telegram to view this post
VIEW IN TELEGRAM
Ранее при использовании политики
imagePullPolicy: IfNotPresent
контейнеры могли запускаться с приватных образов, даже если под не предоставлял соответствующие учетные данные через imagePullSecrets
. В Kubernetes v1.33 kubelet теперь проверяет учетные данные пода перед использованием уже загруженного образа.
Если образ присутствует локально, kubelet удостоверяется, что под имеет соответствующие учетные данные, прежде чем предоставить доступ к образу.
В Kubernetes v1.34 ожидается выпуск этой функции в бета-версии с дополнительными улучшениями.
Please open Telegram to view this post
VIEW IN TELEGRAM
🛠 Как настроить SSH-подключение из новой системы в старую
Когда вам нужно наладить SSH-соединение или передать данные из новой операционной системы в старую (например, с RHEL 9 на RHEL 6), может возникнуть ряд проблем из-за различий в поддерживаемых криптографических протоколах, версиях SSH и других аспектах системы.
🚧 Возможные проблемы при подключении
1. Несоответствие криптографических алгоритмов:
Новые версии операционных систем часто отключают поддержку устаревших криптографических алгоритмов (например, ssh-rsa), которые по-прежнему используются в старых системах.
2. Ошибка в SSH-соединении:
На практике вы можете столкнуться с ошибками вроде:
Это означает, что система, с которой вы пытаетесь подключиться, использует старую версию SSH или устаревшие алгоритмы.
🔧 Решения
1. Изменение настроек криптополитики на новой системе
В большинстве новых версий Linux можно изменить настройки криптографической политики и разрешить использование старых алгоритмов. Например, для включения поддержки ssh-rsa можно выполнить следующую команду:
Этот метод позволит временно восстановить совместимость с устаревшими системами.
2. Использование промежуточного сервера (Jump box)
Если вам нужно подключаться из новой системы в старую, вы можете настроить промежуточный сервер, который будет поддерживать старые и новые алгоритмы. Это поможет избежать изменений в настройках целевых серверов и минимизировать риски.
3. Монтирование файловой системы
В случае, если оба сервера виртуализированы, можно использовать монтирование файловой системы.
Это особенно полезно, если вам нужно перенести большое количество данных.
4. Использование альтернативных протоколов для передачи данных
Если SSH по каким-то причинам не подходит, можно использовать другие протоколы для передачи данных, например:
• NFS — для работы с удалёнными файловыми системами.
• FTP или SFTP — для безопасной передачи файлов.
• rsync — для синхронизации данных между серверами.
Выбор подхода зависит от вашей ситуации: для одноразовой передачи данных можно использовать промежуточный сервер, а для долгосрочного решения — рассмотреть другие методы синхронизации данных.
🐸 Библиотека devops'a #буст
Когда вам нужно наладить SSH-соединение или передать данные из новой операционной системы в старую (например, с RHEL 9 на RHEL 6), может возникнуть ряд проблем из-за различий в поддерживаемых криптографических протоколах, версиях SSH и других аспектах системы.
🚧 Возможные проблемы при подключении
1. Несоответствие криптографических алгоритмов:
Новые версии операционных систем часто отключают поддержку устаревших криптографических алгоритмов (например, ssh-rsa), которые по-прежнему используются в старых системах.
2. Ошибка в SSH-соединении:
На практике вы можете столкнуться с ошибками вроде:
ssh_dispatch_run_fatal: Connection to ... port 22: error in libcrypto
Unable to negotiate with ... port 22: no matching host key type found. Their offer: ssh-rsa
Это означает, что система, с которой вы пытаетесь подключиться, использует старую версию SSH или устаревшие алгоритмы.
🔧 Решения
1. Изменение настроек криптополитики на новой системе
В большинстве новых версий Linux можно изменить настройки криптографической политики и разрешить использование старых алгоритмов. Например, для включения поддержки ssh-rsa можно выполнить следующую команду:
sudo update-crypto-policies --set DEFAULT:SHA1
Этот метод позволит временно восстановить совместимость с устаревшими системами.
2. Использование промежуточного сервера (Jump box)
Если вам нужно подключаться из новой системы в старую, вы можете настроить промежуточный сервер, который будет поддерживать старые и новые алгоритмы. Это поможет избежать изменений в настройках целевых серверов и минимизировать риски.
3. Монтирование файловой системы
В случае, если оба сервера виртуализированы, можно использовать монтирование файловой системы.
Это особенно полезно, если вам нужно перенести большое количество данных.
4. Использование альтернативных протоколов для передачи данных
Если SSH по каким-то причинам не подходит, можно использовать другие протоколы для передачи данных, например:
• NFS — для работы с удалёнными файловыми системами.
• FTP или SFTP — для безопасной передачи файлов.
• rsync — для синхронизации данных между серверами.
Выбор подхода зависит от вашей ситуации: для одноразовой передачи данных можно использовать промежуточный сервер, а для долгосрочного решения — рассмотреть другие методы синхронизации данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
📋 Чек-лист идеального девопса
Идеальных работников не бывает, но мы собрали большой чек-лист, по которому можно понять, что вы стремитесь быть таким.
✅ Автоматизация деплоя и процессов
• Настроен автоматический деплой на стейдж и прод по тегу или коммиту
• Поддержка однонажаточного деплоя (через Slack, WebUI, CLI)
• Реализован rollback на предыдущую версию деплоя
• Внедрена автоматическая проверка кода перед деплоем (линтеры, тесты, секреты)
• Внедрён preflight checklist перед деплоем (валидаторы, approvals, условия)
• Настроена канареечная поставка (canary deployment) или blue/green
✅ Проверки и валидации
• Проверка конфигураций (YAML, Terraform, Helm) при Pull Request
• CI проверяет, что нет «drift» между IaC и реальной инфраструктурой
• Внедрена проверка секретов в коде (например, через truffleHog, gitleaks)
• Используется policy-as-code (OPA, Conftest) для контроля стандартов
✅ Наблюдаемость и логирование
• Настроены дашборды для метрик (CPU, память, latency, ошибок)
• Автоматический алертинг при отклонении от нормы
• Есть лог-агрегация с фильтрацией по сервисам и компонентам
• Подключена трассировка запросов (OpenTelemetry, Jaeger, Zipkin)
✅ Безопасность
• Все секреты хранятся в безопасном хранилище (Vault, AWS Secrets Manager)
• Используется Least Privilege для IAM/доступов
• Автоматизированы security-сканы (Snyk, Trivy, Clair)
• Применяется 2FA и audit logs для ключевых операций
✅ Developer Experience
• Настроено автогенерирование документации (например, по API)
• Разработчики могут запускать окружения в изоляции (preview environments)
• Добавлены шаблоны Helm/Compose для локальной разработки
• Внедрены dev-контейнеры или devshell (например, через Nix или Docker)
✅ Управление инфраструктурой
• Вся инфраструктура в IaC (Terraform, Pulumi, CloudFormation)
• Настроен CI для автоматической валидации/применения изменений в инфраструктуре
• Используется модульная структура IaC-кода (по сервисам/проектам)
• Ведётся аудит изменений инфраструктуры (Terraform Cloud, Atlantis)
✅ Поддержка процессов и стабильности
• Внедрены регулярные постмортемы и RCA-документы после инцидентов
• Настроен cron-инвентарь / дэшборд со всеми активными джобами
• Автоматизирована проверка сертификатов и их сроков
• Ведётся чёткий on-call ротационный график с алертом и логом действий
✅ Коммуникация и документация
• Все пайплайны и инфраструктура документированы в виде wiki / README
• Есть канал в Slack или другой платформе с логами деплоя/событий
• Поддерживается база знаний по инцидентам и FAQ по пайплайнам
• Реализовано логирование критических действий (deploy, scale, restart)
🐸 Библиотека devops'a #буст
Идеальных работников не бывает, но мы собрали большой чек-лист, по которому можно понять, что вы стремитесь быть таким.
• Настроен автоматический деплой на стейдж и прод по тегу или коммиту
• Поддержка однонажаточного деплоя (через Slack, WebUI, CLI)
• Реализован rollback на предыдущую версию деплоя
• Внедрена автоматическая проверка кода перед деплоем (линтеры, тесты, секреты)
• Внедрён preflight checklist перед деплоем (валидаторы, approvals, условия)
• Настроена канареечная поставка (canary deployment) или blue/green
• Проверка конфигураций (YAML, Terraform, Helm) при Pull Request
• CI проверяет, что нет «drift» между IaC и реальной инфраструктурой
• Внедрена проверка секретов в коде (например, через truffleHog, gitleaks)
• Используется policy-as-code (OPA, Conftest) для контроля стандартов
• Настроены дашборды для метрик (CPU, память, latency, ошибок)
• Автоматический алертинг при отклонении от нормы
• Есть лог-агрегация с фильтрацией по сервисам и компонентам
• Подключена трассировка запросов (OpenTelemetry, Jaeger, Zipkin)
• Все секреты хранятся в безопасном хранилище (Vault, AWS Secrets Manager)
• Используется Least Privilege для IAM/доступов
• Автоматизированы security-сканы (Snyk, Trivy, Clair)
• Применяется 2FA и audit logs для ключевых операций
• Настроено автогенерирование документации (например, по API)
• Разработчики могут запускать окружения в изоляции (preview environments)
• Добавлены шаблоны Helm/Compose для локальной разработки
• Внедрены dev-контейнеры или devshell (например, через Nix или Docker)
• Вся инфраструктура в IaC (Terraform, Pulumi, CloudFormation)
• Настроен CI для автоматической валидации/применения изменений в инфраструктуре
• Используется модульная структура IaC-кода (по сервисам/проектам)
• Ведётся аудит изменений инфраструктуры (Terraform Cloud, Atlantis)
• Внедрены регулярные постмортемы и RCA-документы после инцидентов
• Настроен cron-инвентарь / дэшборд со всеми активными джобами
• Автоматизирована проверка сертификатов и их сроков
• Ведётся чёткий on-call ротационный график с алертом и логом действий
• Все пайплайны и инфраструктура документированы в виде wiki / README
• Есть канал в Slack или другой платформе с логами деплоя/событий
• Поддерживается база знаний по инцидентам и FAQ по пайплайнам
• Реализовано логирование критических действий (deploy, scale, restart)
Please open Telegram to view this post
VIEW IN TELEGRAM